#ifndef ALARM_H
#define ALARM_H

#include <QtCore>

//告警
typedef struct _SAlarm
{
public:
    //获取上次告警时间的秒值(自Utc的1970-01-01T00:00:00.000开始的秒值)
    quint64 GetSecsSinceEpoch();
    //获取告警的字符串值(格式为yyyy-MM-dd HH:mm:ss)
    QString GetDatetimeValue();

    bool IsTypeOfWarn();
    bool IsTypeOfAlarm();
    bool IsTypeOfProt();
    bool IsTypeOfTip();
    bool IsTypeOfFault();

    bool IsTypeOfUpLimit();
    bool IsTypeOfDownLimit();

    float GetUpDiff();
    float GetDownDiff();

    bool IsLevelOfWarn();
    bool IsLevelOfWarnHC();
    bool IsLevelOfAlarm();
    bool IsLevelOfAlarmHC();
    bool IsLevelOfProt();
    bool IsLevelOfProtHC();
    bool IsLevelOfTip();
    bool IsLevelOfTipHC();
	
public:
    quint16 usYear;        // 开始时间 - 年
    quint16 usMonth;       // 开始时间 - 月
    quint16 usDay;         // 开始时间 - 日
    quint16 usHour;        // 开始时间 - 时
    quint16 usMin;         // 开始时间 - 分
    quint16 usSec;         // 开始时间 - 秒

    quint16 usType;        // 告警类型:具体值见AlarmTypeDefine.h中
    quint16 usAppType;     //进程应用类型:具体值见ProcessType.h中
    quint16 usLevel;       //告警等级:10预警,11预警回差,20告警,21告警回差,30保护,31保护回差,40提示,41提示回差
    float fSampVal;        // 采集值
    float fThreVal;        // 设置的阈值

    quint16 usCellNo;      // 节号 或 箱号
    quint16 usNo1;         // 序号1 - 通用
    quint16 usNo2;         // 序号2 - 通用
    quint16 usNextNo;      // 下条告警序号
}SAlarm;

#endif //ALARM_H
